PreviousNextTracker indexSee it online !

(129/185) 297 - recognize buffer properties in emacs format

It would be nice if jEdit could support Emacs mode strings for mode settings. A simple addition would be to include mode strings in the default first line globs. For example, to detect non-executable Perl files which have no extension but whose first line starts with a shebang or "# -\*- mode: perl; -\*-":

{#\!/\*perl\*,\*mode: \*perl\*}

A more difficult feature would be the support for overrides of the jEdit mode settings with strings like this:

; -\*- mode: Lisp; tab-width: 4; -\*-

This could make it easier to share files, especially since there is (AFAIK) no way to specify mode settings per directory tree.

Submitted engmark - 2012-05-14 13:28:43 Assigned
Priority 3 Labels EditorConfig
Status open Group
Resolution None

Comments

2012-05-14 15:36:03
jarekczek

"Would be nice", so it is not a bug, but a feature request. I'm moving it to the correct tracker.

I am not sure, but seems like part of the things is already supported. See "Writing edit modes / Installing edit modes" and "Using jedit / Customizing / Buffer-Local properties" chapters of the users guide.

Let's have this report for a single thing. Please provide a short file that is not recognized by jedit as a perl file. We already track some regular expressions:
FIRST_LINE_GLOB="#\!/\*perl\*" />

I am testing with daily built jedit.

2012-05-14 15:36:04
jarekczek

- **summary**: Support Emacs mode strings --> perl mode: recognize mode from emacs string
- **status**: open --> pending-works-for-me

2012-05-14 15:36:21
jarekczek

- **labels**: 102669 -->

2012-05-14 15:44:02
engmark

- **status**: pending-works-for-me --> open-works-for-me

2012-05-14 15:44:02
engmark

As already mentioned I work with files which have no shebang line (because they are not supposed to be executed on their own), and don't have a \*.p\[lm\]{,.tdy} extension (for unknown reasons), but \*do\* have a mode line. These are not detected as Perl.

Attaching an example file.

2012-05-14 15:44:07
engmark

Test file

test (40B)

2012-05-14 15:50:49
ezust

in jedit we use = instead of colon (which is used by emacs).

http://www.jedit.org/users-guide/buffer-local.html

inserting a line like this:
# :mode=perl:

works for me.

2012-05-14 16:25:57
jarekczek

So most part of Victor's request is already done. General recognition of emacs syntax file properties would be desirable though. Let's have this entry for that. Here are the relevant pages from emacs manual:

http://www.gnu.org/software/emacs/manual/html_node/emacs/Specifying-File-Variables.html#Specifying-File-Variables
http://www.gnu.org/software/emacs/manual/html_node/emacs/Choosing-Modes.html

Workaround is having jedit line as a second, because jedit properites needn't be set in the very first line.

As the feature is not expected to be applied soon, you could edit your catalog file and enable perl mode recognition changin the FIRST_LINE_GLOB. I think if you have a good working version of catalog file, you could also submit a patch for that file. To patches tracker. That would be a better workaround for the general issue.

2012-05-14 16:25:57
jarekczek

- **summary**: perl mode: recognize mode from emacs string --> recognize buffer properties in emacs format
- **priority**: 5 --> 3
- **status**: open-works-for-me --> open

2013-04-23 15:58:49
ezust

I think this should be done in a plugin.
Perhaps looking at how EditorConfig works can help a plugin author implement this feature in a new plugin or in editorconfig itself.


2013-12-09 17:07:07.689000
ezust

- **labels**: --> EditorConfig
- **Group**: -->